#include<graphics.h>
#include<conio.h>
#include<stdio.h>
int main()
{
	int score = 0, isBallonFloor = 1;
	float width = 600, height = 500;
	initgraph(width, height);
	float ball_x, ball_y, ball_vy, gravity, radius, rect_height = 100, rect_width = 20, rect_left_x = width * 3 / 4, rect_top_y, rect_vx = -3;
	rect_top_y = height - rect_height;
	radius = 20;
	ball_x = width / 4;
	ball_y = height - radius;
	ball_vy = 0;
	gravity = 0.5;
	while (1)
	{

		if (_kbhit())
		{
			char input = _getch();
			if (input == ' ' && isBallonFloor == 1)
			{
				ball_vy = -17;
				isBallonFloor = 0;
			}
		}
		ball_vy = ball_vy + gravity;
		ball_y = ball_y + ball_vy;
		if (ball_y >= height - radius)
		{
			ball_vy = 0;
			ball_y = height - radius;
		}
		rect_left_x = rect_left_x + rect_vx;
		if (ball_y == height - radius)
			isBallonFloor = 1;
		if (rect_left_x <= 0)
		{
			score = score + 1;
			rect_left_x = width;
			rect_height = rand() % int(height / 4) + height / 4;
			rect_vx = rand() / float(RAND_MAX) * 4 - 7;
		}
		if ((rect_left_x <= ball_x + radius)
			&& (rect_left_x + rect_width >= ball_x - radius)
			&& (height - rect_height <= ball_y + radius))
		{
			score = 0;
			Sleep(20);
		}
		cleardevice();
		fillcircle(ball_x, ball_y, radius);
		fillrectangle(rect_left_x, height - rect_height, rect_left_x + rect_width, height);
		TCHAR s[20];
		swprintf_s(s, _T("%d"), score);
		settextstyle(40, 0, _T(""));
		outtextxy(50, 30, s);
		Sleep(10);
	}
	closegraph();
	return 0;
}